package com.shop.cloud.model.request;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.shop.cloud.model.request.RestfulRequest;

import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * @author Alex
 */
@ToString(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"}, ignoreUnknown = true)
public class GetOrderListRequest extends RestfulRequest {

    private static final long serialVersionUID = -3286520204644035655L;
    
    public static final int TYPE_HONGFU = 1;		// 鸿福商城
    public static final int TYPE_POINTS = 2;		// 积分商城
    public static final int TYPE_REBATE = 3;		// 返利商城
    public static final int TYPE_TRAVEL = 4;		// 旅游专区
    
    public static final int DELIVER_SELF = 1;	// 到店自提（免费）
    public static final int DELIVER_EXPRESS = 3;	// 快递配送（免费）
    
    public static final int STATUS_WAIT_SEND = 2;		// 待发货
    public static final int STATUS_WAIT_TAKE = 3;		// 待收货
    public static final int STATUS_FINISHED = 4;		// 已结束
    public static final int STATUS_CANCELED = 5;		// 已取消
    
    public static final int SEARCH_TYPE_ORDER_NO = 1;				// 搜索订单号
    public static final int SEARCH_TYPE_BUYER_USER_ID = 2;		// 搜索买家用户ID
    public static final int SEARCH_TYPE_BUYER_NICKNAME = 3;		// 搜索买家昵称
    public static final int SEARCH_TYPE_BUYER_PHONE = 4;			// 搜索买家电话
    public static final int SEARCH_TYPE_SHOP_NAME = 5;			// 搜索商铺名称
    
    @JsonProperty("type")
    @ApiModelProperty(value = "商城专区类型。1鸿福商城，2积分商城，3返利商城，4旅游专区", example = "", required = false)
    private int type;
    
    @JsonProperty("searchType")
    @ApiModelProperty(value = "搜索方式，1搜索订单号，2搜索买家用户ID，3搜索买家昵称，4搜索买家电话，5搜索商铺名称", example = "", required = false)
    private int searchType;

    @JsonProperty("keyword")
    @ApiModelProperty(value = "搜索关键词", example = "", required = false)
    private String key;
    
    @JsonProperty("deliverType")
    @ApiModelProperty(value = "配送方式，1到店自提，3快递配送", example = "", required = false)
    private int deliverType;
    
    @JsonProperty("openDistribution")
    @ApiModelProperty(value = "是否开启了分销，0关闭，1开启", example = "", required = false)
    private int openDistribution;
    
    @JsonProperty("status")
    @ApiModelProperty(value = "订单状态。2待发货，3待收货，4已结束，5已取消", example = "", required = false)
    private int status;
    
    @JsonProperty("startTime")
    @ApiModelProperty(value = "开始时间,格式：YYYY-MM-dd hh:mm:ss", example = "", required = false)
    private String start_time;
    
    @JsonProperty("endTime")
    @ApiModelProperty(value = "结束时间,格式：YYYY-MM-dd hh:mm:ss", example = "", required = false)
    private String end_time;

	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

	public int getOpenDistribution() {
		return openDistribution;
	}

	public void setOpenDistribution(int openDistribution) {
		this.openDistribution = openDistribution;
	}

	public int getStatus() {
		return status;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public String getKey() {
		return key;
	}

	public void setKey(String key) {
		this.key = key;
	}

	public int getDeliverType() {
		return deliverType;
	}

	public void setDeliverType(int deliverType) {
		this.deliverType = deliverType;
	}

	public int getSearchType() {
		return searchType;
	}

	public void setSearchType(int searchType) {
		this.searchType = searchType;
	}

	public String getStart_time() {
		return start_time;
	}

	public void setStart_time(String start_time) {
		this.start_time = start_time;
	}

	public String getEnd_time() {
		return end_time;
	}

	public void setEnd_time(String end_time) {
		this.end_time = end_time;
	}
}
